<?php
include_once("../inc/common.php");

// Inicialização dos dados de saída ////////////////////////////////
$result["ok"] = "0";

// Captura a ação a ser executada //////////////////////////////////
$action = Param::get("action");

// Salvar instrutor ////////////////////////////////////////////////
if ($action == "salvar") {
	// Prepara dados de retorno
	$result["ok"] = "0"; // começa com não OK
	// Validação
	$error = new Error();
	if (Param::get("f_txt_nome") == "") $error->add('Nome do instrutor deve ser informado.');
	if (Param::get("f_txt_email") == "") $error->add('E-mail deve ser informado.');

	// Atualização dos dados
	if ($error->hasError()) {
		$result["erro"] = $error->toString();
	} else {
		$sql = new UpdateSQL();

		$sql->setTable("instrutor");
		$sql->setKey("id_instrutor", Param::getInt("f_id"), "Number");

		$sql->addField("txt_nome", Param::get("f_txt_nome"), "String");
		$sql->addField("txt_email", Param::get("f_txt_email"), "String");

		if (Param::getInt("f_id") > 0) { // alteração
			$sql->setAction("UPDATE");
			DBUtils::executeSQL($sql->getSQL());
			$result["modo"] = "a";
		} else { // inclusão
			$sql->setAction("INSERT");
			$last_id = DBUtils::executeSQL($sql->getSQL());
			$result["modo"] = "i";
			$result["id"] = $last_id;
		}

		$result["sucesso"] = "Dados atualizados com sucesso!";
		$result["ok"] = "1";
		Messages::sendSuccess($result["sucesso"]);
	}
	echo json_encode($result);
}

// Excluir instrutor ///////////////////////////////////////////////
if ($action == "excluir") {
	$itens = "";
	try {
		$itens = implode(",", Param::getArray("sel"));
	} catch (Exception $e) {
		$itens = "";
	}

	// validação
	$error = new Error();
	$sqlQtdeTur = "SELECT count(id_turma) as qtde FROM turma WHERE id_instrutor IN (" . $itens . ")";
	if (DBUtils::getValue($sqlQtdeTur) > 0) $error->add("Existem instrutores associados em turmas.");
	if (strlen($itens) == 0) $error->add("Nenhum registro selecionado.");

	// Transação
	if ($error->hasError()) {
		Messages::sendError($error->toString());
		Http::redirect("../mod_instrutor/instrutor-lista.php");
	} else {
		try {
			$sql = "DELETE FROM instrutor_curso WHERE id_instrutor IN (" . $itens . ")";
			DBUtils::executeSQL($sql);

			$sql = "DELETE FROM instrutor WHERE id_instrutor IN (" . $itens . ")";
			DBUtils::executeSQL($sql);

			Messages::sendSuccess("Instrutores excluídos com sucesso!");
		} catch (Exception $e) {
			Messages::sendError("Erro durante a exclusão de instrutores");
		}
	}

	// Retorna
	Http::redirect("../mod_instrutor/instrutor-lista.php");
}

// Remoção de cursos ministrados ///////////////////////////////////
if ($action == "remover") {
	// Recupera a chave do relacionamento
	$fk_id = Param::get("fk_id");

	// Captura e prepara a lista de registros
	$list_exclusao = implode(",",Param::getArray("sel"));

	// Validação
	$error = new Error();
	if (strlen($list_exclusao) == 0) $error->add("Nenhum registro selecionado");

	// Transação
	if ($error->hasError()) {
		Messages::sendError($error->toString());
	} else {
		$sql = "DELETE FROM instrutor_curso WHERE id_instrutor=$fk_id AND id_curso IN (" . $list_exclusao . ")";
		DBUtils::executeSQL($sql);
		Messages::sendSuccess("Cursos removidos com sucesso!");
	}
	Http::redirect("../mod_instrutor/instrutor-curso-associacao.php?id=" . $fk_id);
}
?>